
$
Welcome to the Musicraft Help Facility.

Type a..
     U to find out how to use the Musicraft 1.3 System,
     M to find out how to modify it,
     P to find out how to print out the manual.

                        (to exit, type <ret>)
$U

Type a..
     G for immediate gratification,
     I for some general information
     E for how to use the edit facility,
     C for how to compile an editted song,
     W for how to edit a waveform,
     P for how to play a compiled song,
     U for stuff about the utility facilities.

                        (to exit, type <ret>)
$UG:UG1
The intent of the following frames is to help you play a canned song. I 
will assume the following:
. you have installed a digital to analog converter at some port address,
. you have connected said dac to your stereo,
. you have turned your stereo on,
. you have correctly identified the port address of your dac to the setup 
  function (the initialization that you had to go through just to get to 
  this point),
. you have the Musicraft 1.3 song disk,
. and that you are in the CP/M command mode A>.

In what follows, <ret> stands for the carriage return (or enter) key and 
.> indicates a Musicraft prompt.

                                       Place the song disk in drive B:.
A> MUSIC B:FLS<ret>                    The Musicraft menu will appear.
.> C                                   Type the letter. FLS on B: will
                                       be compiled and messages denoting
                                       the compile process will appear
                                       on the screen. Wait until the
                                       Musicraft menu reappears.)

                (to continue reading this, type <ret>)
$UG1:UG2
.> P                                   This causes Musicraft to load the
                                       song FLS and then request that
                                       you identify a waveform.
.> =<ret>                              Leave the waveform tables unchanged.
                                       The waveform tables are pre-loaded
                                       with a set of default waveforms which
                                       have been found to be generally useful.
                                       
At this point, if all has gone well, you should hear the strains of J.S.
Bach's Invention number 4. If you don't, then something was probably missed.
Recheck each assumption and retry each step. If you still can't get it to
work then you can call me at (301)433-0369 in the evenings. 

                (to continue reading this, type <ret>)
$UG2
This concludes the "immediate gratification section. I hope that it 
worked. If it did, you should be able to do anything that the system will 
permit with additional practice. I do want to warn you..this is not a toy
system, you have a lot of facilities in this package. To learn about them
and to learn to use them effectively will take practice. This help facility
does not replace the manual. One of the volumes in this set contains the
manual. You can print it out if you like; it is over 70 pages in length.
You can also buy it from Newtech Computer Systems, Inc., 230 Clinton Street,
Brooklyn, New York 11201 (phone (212)625-6220). In that case, it will be
properly paged and formatted. I don't know the price.

                        (to exit, type <ret>)
$UI:UI1
Names.
The programs in Musicraft use different file extensions to identify files.
While several files are related to any song, their names differ in their
type, or extension. You never enter the file type, the programs know what
type to add to the name.

                (to continue reading this, type <ret>)
$UI1:UI2
Devices:
The programs support the CP/M device specification in a file name at all
times. You can type, eg., B:FLS and the system will operate correctly by
loading and storing the various files associated with that song by using
drive B:.

                (to continue reading this, type <ret>)
$UI2:UI3
The Song Development Process.

The process of creating a song and playing it is done in three steps in
the Musicraft System.

1. You must first use the editor to create your song and to store it
   on your disk. Later, when you wish to change your song, you again use
   the editor. You use the song edit facility by using the E_command.
2. Once having stored the song as a disk file, you must then convert the
   song information into the numerical form that is required by the play
   program. You use the the compiler facility by using the C_command.
3. You can now play the song by using the P_command.

Each of these programs are described in some detail in this help facility,
so browse aboutto get familiar with the operation of these steps. There
are other useful functions as well which are not essential to the song
development process but which will enhance your music making abilities. For
example, there is a waveform editor which allows you to create waveforms,
see their shapes on the screen, hear the quality of the sound over the entire
range of the Musicraft System, and to change and adjust them to suit your
purposes. There are other facilities as well. So explore the possibilities.

                (to continue reading this, type <ret>)
$UI3:UI4
The Work Song.
When you load the Musicraft menu, you can use either of two CP/M commands:

A> MUSIC<ret>
or
A> MUSIC <song_name><ret>

for example..

A> MUSIC B:FLS<ret>

The first version specifies no work song while the second version does.
If you use the second version, then the editor, compiler, and play programs
will automatically use the files associated with that song.

You may change the work song at any time you are presented with the Musicraft
menu by using the N_command. This will ask you to specify a new work song.

                (to continue reading this, type <ret>)
$UI4
Waveforms in the Play program.

The play program has 14 waveform tables which have been pre-loaded with
waveforms which were considered useful. Just so you can get some idea
which sounds go with which names, here is a list of the contents of the
waveform tables (these waveform files are all on the song disk):

1. SQUARE
2. SAWTOOTH
3. EQ124
4. EQ12
5. SINE
6. ORGAN
7. CLARINET
8. OBOE
9. TRUMPET
10. TRUMPET2
11. SAW2
12. SAW3
13. SAW4
14. empty

                        (to exit, type <ret>)
$UE
Use the E command to run the editor while in the Musicraft menu. The edit
program will be loaded and it will load the current working song, if any.
If you wish to run the song editor from the CP/M command mode, you 
may type the following:

A> EDIT<ret>
or
A> EDIT <song_name><ret>

This section BRIEFLY describes the song editing facility.

Type a..
     N to learn about the Musicraft notation
     E to learn how to change existing lines in a song
     I to learn how to insert new lines into a song,
     M to learn how to insert measure lines into a song,
     X to learn how to get rid of lines you don't like,
     O to learn something about all the options in the option menu.

                        (to exit, type <ret>)
$UEN
A Musicraft song is comprised of a series of song lines. Each song
line contains the information needed to play up to four voices (with
percussion using the Newtech Rhythm Box) for one duration unit. The edit
facility will display a page (usually 23 song lines) at a time. Each
horizontal line constitutes one song line while the columns have uses
depending on the column. Use the menu below to learn about each column.

type a..
     L for a description of the line number,
     D for a description of the duration of the song line,
     P for a description of the pitch notation for the four columns(voices),
     R for a description of the percussion notation.

(Incidentally, I should warn you here that what you read here will not teach
you what you need to know about music to use the Musicraft System. You should
already know how to read music on the printed page. You need not be able to
read it well, just be able to read it.)

                        (to exit, type <ret>)
$UENL
The line number displayed by the edit facility is used by the compiler to
indicate errors. You can also use it to find specific song lines while
editing. See the Find command for a description of this ability.

                        (to exit, type <ret>)
$UEND:UEND1
The duration column determines how long the song line will last when it is
played. It is one or two characters in length. The first character must be
one of the following:

char meaning      char meaning              char meaning
 
 W   whole note     A  triplet half note      K  triplet 16th note
 H   half note      B  1/5 whole note         L  1/7 quarter note
 Q   quarter note   C  triplet quarter note   N  1/5 eighth note
 E   eighth note    D  1/7 whole note         P  triplet 32nd note
 S   16th note      F  1/5 half note          U  1/7 eighth note
 T   32nd note      G  triplet eighth note    V  1/5 16th note
 F   64th note      I  1/7 half note          Y  triplet 64th note

                (to continue reading this, type <ret>)
$UEND1
The second character used in the duration column is the duration adjustment
and may be one of the following:

A period (.) adjusts the duration in the same manner as does dotting a note
in musical notation, viz., the duration is taken as half again as long.

A colon (:) adjusts the duration as does doubly-dotting a note in musical
notation; viz,. the duration is taken as 1-3/4 the duration value indicated.

A comma (,) provides a simple way to convert any duration to its corresponding
triplet value.

Thus, for example, E. is equal to three 16th notes, while Q, is one of three
triplet quarter notes in a single half note duration.

                        (to exit, type <ret>)
$UENP
Pitch can be represented in either of two ways. You may use the standard
chromatic notation or you may use the microtonal notation.

Type a..
     C to learn about the notation used for chromatic intervals,
     M to learn about the notation used for microtonal intervals.
     
You may use the two notations quite interchangably in any piece, the system
will recognize either.

                        (to exit, type <ret>)

$UENPC
Each chromatic pitch symbol is composed of three parts describing the pitch
or rest to be performed. These three parts are

1. The note name. Any letter from A to G (along with R for rest) is accepted.
   These letters are taken in the traditional musical manner. (I can't teach
   you music here so if you don't already know it you will have to learn it
   elsewhere.)

2. The accidental. Any one of the following:
   ! (or 1) represents a flat,
   @ (or " or 2) represents a natural,
   # (or 3) represents a sharp.

3. The octave. Any number from 1 to 7 is permitted. 1 is the lowest octave
   while 7 is the highest.  The range of Musicraft is from A@1 to G#7.

Incidentally, you need not fill in a voice column if it is not to be played.
Leaving it blank is the same thing as typing an R as the note name. It will
be silent.

                        (to exit, type <ret>)
$UENPM
Each microtonal pitch symbol is composed of two parts describing the pitch
or rest to be performed. These two parts are

1. The note number. Any number from 00 to 95 (along with R for rest) is
   accepted. These numbers represent a division of the octave into 96 parts.
   The smaller numbers correspond to lower pitches within the octave while
   the larger numbers correspond to higher pitches within the octave. 
   
   Those numbers divisible by 8 are the chromatic notes according to the
   following:
   
   00 = A, 08 = A#, 16 = B, 24 = C, 32 = C#, 40 = D, 48 = D#, 56 = E,
   64 = F, 72 = F#, 80 = G, and 88 = G#.

2. The octave. Any number from 1 to 7 is permitted. 1 is the lowest octave
   while 7 is the highest.  The range of Musicraft is from 001 to 957.

                        (to exit, type <ret>)
$UENR
The Musicraft System supports percussion if you are using the Newtech
Rhythm Box.
(plug:
        You can buy the Rhythm Box mail-order from Newtech Computer 
        Systems, Inc., 230 Clinton Street, Brooklyn, New York 11201.
        Their telephone number is (212)625-6220. Tell them I sent you.
                                                          end of plug.)

The Rhythm Box supports seven different instruments with two loudness
levels. When you are in the percussion column, the letters B through G
represent the different instruments (I don't know which letters go with
which instrument) while the letter A represents the loudness.

If a letter is present in the percussion column, the corresponding
instrument will play. If the letter is not present, that instrument
will not play. Simple.  No letter A denotes "quiet", while the letter A,
when present, denotes "loud". This permits accents and beats.

The edit facility in this column is simple, too. If the letter is not 
there, you put it there by simply typing the letter. If the letter is 
there and you wish to erase it, type the letter again. Poof.

                        (to exit, type <ret>)
$UEE
When you first enter the edit facility from the Musicraft menu by typing
the letter E, you will be in the editting mode of operation. This means
that you may roam around (navigate) in the song using the navigation keys
and you can make changes to the song lines which are already present in
the song you loaded. If the song you named doesn't exist, then this mode
of operation will not do you much good, because you have no song lines yet
to edit. But, if the song does exist, you will see the first page of it on
your screen, and the following frames are for you.

Type a..
     N to learn about navigation
     E to learn how to change durations, pitches, etc,
     Q to learn how to return to the Musicraft menu.

                        (to exit, type <ret>)
$UEEN
There are four groups of navigation commands. Use the following
menu to learn about each group.

Type a..
     D for the direction commands,
     F for the find commands,
     L for the leaping commands
     S for the stepping commands,
     C for the creeping commands.

(Terminals differ substantially with regards to the cursor control keys.
Many do not have explicit <up_arrow>, <down_arrow>, <left_arrow>, and
<right_arrow> keys and you must use the appropriate control sequences.
These are, respectively, <ctrl_K>, <ctrl_J>, <ctrl_H> and <ctrl_L>.
The ANSII family of crt's have the keys but those keys generate escape
sequences. Musicraft handles this so don't worry about it.)

Incidentally, you can use the ? key to center the cursor on the page at
any time you are in either the edit or insert modes. This does not
affect the position of the cursor with respect with the song but does
help you see the context of the material as you work.

                        (to exit, type <ret>)
$UEEND
There are two direction commands which are used to control the direction
of the leaping commands.

The "<" command sets the direction to up.

The ">" command sets the direction to down.

Neither command changes the position of the cursor.

                        (to exit, type <ret>)
$UEENF
To use the find commands, you must first type M while in the edit menu.
Then, type F. You are then presented with a menu of three choices.

Type a..
     L to learn to find a label,
     M to learn to find a measure,
     S to learn to find a song line.

                        (to exit, type <ret>)
$UEENFL
Type an L to choose this command. Then enter the label name followed by
a <ret>. The song is searched for the label, and, if found, the page 
containing the label is displayed with the cursor centered on the label. 
If the label is not found, the cursor is left undisturbed.

You can learn about labels and other uses for them in the frames 
describing the options menu of the edit facility.

                        (to exit, type <ret>)
$UEENFM
Type an M to choose this command. Then enter the measure number followed
by a <ret>. The song is searched for the measure, and, if found, the page 
containing the measure is displayed with the cursor centered on the 
measure. If the measure is not found, the cursor is left undisturbed.

You can learn about measures and other uses for them in frames describing
the options menu of the edit facility.

                        (to exit, type <ret>)
$UEENFS
Type an S to choose this command. Then enter the line number followed
by a <ret>. The song is searched for the line, and, if found, the page 
containing the line is displayed with the cursor centered on the line. 
If the line is not found, the cursor is left undisturbed.

                        (to exit, type <ret>)
$UEENL
There are three leaping commands:

The home command <ctrl_Y> moves the cursor to the top or the bottom 
of the song.

The page command <P> moves the cursor to the next page of the song.

The next command <N> moves the cursor to the next measure line in 
the song.

Which direction these commands will move the cursor depends on the current
direction indicator (which is the character in the upper-left position of
the screen.) If it is a >, the direction is "down"; while if it is a <,
the direction is "up".

                        (to exit, type <ret>)
$UEENS
The stepping commands allow you to move the cursor up or down one song 
line at a time.

The up command <up_arrow> moves the cursor to the song line immediately 
above.

The down command <down_arrow> moves the cursor to the song line imme-
diately below.

You may also move the cursor down with the use of the <ret> key. 

The screen will scroll when you reach the bottom, but will flip when you
reach the top.

                        (to exit, type <ret>)
$UEENC
There are three creeping commands. The creepers moves the cursor through 
the various parts of the song line.

The right_arrow command <ctrl_L> moves the cursor to the next column to 
the right.

The left_arrow command <ctrl_H> moves the cursor to the next column to 
the left (not including the line number.)

Each of these commands wrap around the screen and never permit the
cursor to enter unknown territory (ie., between the columns.)

The space command moves the cursor to the next position to the right 
within the column you are already in. This command wraps around within 
the column and can be undone (to the left-most position) by the left_
arrow command.

                        (to exit, type <ret>)
$UEEE
To change any part of a song line, you must first place the cursor at the
location which you wish to change. Read the section about edit navigation
for how to do this.

Once having placed the cursor at the location you wish to change, you may
type the new value over the old value. That is all there is to it.

                        (to exit, type <ret>)
$UEEQ
There are two ways to quit the edit facility. One will automatically save
your song while the second will not disturb the song file on disk.

The first way is by typing <ctrl_Q> while in the edit mode. You will be
asked if you really meant it. If you did, type Y. The old song file on
disk will become a backup and the song in memory will be saved under the
song name.

The second way is by typing <ctrl_C> at any time. You will again be asked
if you meant it. If you answer Y, no changes will take place on your disk.

In either case, the Musicraft menu is redisplayed.

                        (to exit, type <ret>)

$UEI:UEI1
To enter the Insert mode, type I while in the edit mode. The portion of
the screen below the cursor is cleared and you may now insert new song 
lines. You will note that song lines are always inserted before the two
lines <*da capo> and <*da coda>. 

In order to enter a value into a particular column, you use the navigation
keys to place the cursor at the position to be inserted. Then you type
the value(s) to which you wish to set that column in the song line. The
editor does not describe the meaning of each column on the screen. It
would have been helpful if it did. So you have to memorize the format if
there is nothing on the screen to serve as a reference.

You are permitted the use of the creeping-type navigation keys, the
<down_arrow> key and the <ret> key when in the insert mode.  The creeper
keys do not create additional song lines, but the stepper keys do.

                (to continue reading this, type <ret>)
$UEI1
The format of a song line is..

<line#>  <dur>  <pitch#1>  <pitch#2>  <pitch#3>  <pitch#4>  <per>

where..

   line#   is the line number of the song line,
   dur     is the duration symbol for the song line,
   pitch#1 is the pitch symbol for the first voice,
   pitch#2 is the pitch symbol for the second voice,
   pitch#3 is the pitch symbol for the third voice,
   pitch#4 is the pitch symbol for the fourth voice, and
   per     is the percussion data.

The actual number voices in a song is determined when a song is first created.

All of these fields are described elsewhere in this help file.

You return to the edit mode by pressing the <ctrl_Q> key. The page of song
lines are redisplayed.

                        (to exit, type <ret>)
$UEM
Measure lines can be inserted into the text of a song at any time you are
in either the edit mode or the insert mode. It is done by pressing the letter
M. This will assign a number to the measure in the order in which you created
the measure lines. They may get out of sequence in this way. The edit program
renumbers measure lines as the song is being saved when you exit the edit
facility to insure that they are in ascending order.

Measures are useful for quickly finding a section of a song while you are
editing it; and they are also useful if you need to restart a song at some
point while you are playing it.

                        (to exit, type <ret>)
$UEX
To enter the Excise mode, type X while in the edit mode. The cursor is
immediately placed to the left of the current song line. You can now 
excise song lines by using the stepping navigation commands; viz., the
<up_arrow> and <down_arrow> keys. These keys will delete a song line for
each entry of the key. Pressing the <up_arrow> key deletes upward while
pressing the <down_arrow> key deletes downward. However, you can un-delete
a song line by pressing the other key. Ie., pressing the <down_arrow> key
deletes a song line. By pressing the <up_arrow> key, the deletion is undone.

You return to the edit mode by pressing the <ctrl_Q> key. This causes all 
deletions to be applied to the song and the corrected page of song lines
to be displayed.

                        (to exit, type <ret>)
$UEO
To enter the Options mode, type O while in the edit mode. The screen is
cleared and a variety of options appear as a menu.

Type a..
     C to read about the chorus call
     F to read about the find facility
     L to read about labels
     R to read about repeats
     T to read about tempo changes
     U to read about transpositions
     V to read about the verify facility
     W to read about waveform assignments
     X to read about ending choruses
     K to read about key signatures.

                        (to exit, type <ret>)
$UEOC
A chorus is a segment of music which must be performed several times in the
course of a song. You ca save yourself the work of entering the segment every
time it is needed in the song by setting it up as a labeled song segment
using the label line and the exit line, and then calling it with the chorus
call line at the points in your song where you wish it to be played. 

The chorus segment is like a subroutine. The label associated with it gives
it a name and you use that name in the chorus call line. 

The Musicraft supports chorus calls within chorus calls to a depth of 16.

example:
     <song segment>     this section is played first
     *C CHORUS          then the chorus is played
     <song segment>     this section is played last
     *X                 the play program exits the song
     
     *L CHORUS  5       this marks the beginning of the chorus
     <chorus segment>   this is the music of the chorus section
     *X                 this terminates the chorus

                        (to exit, type <ret>)
$UEOF
This facility is described as a part of the edit mode navigation aids.

                        (to exit, type <ret>)
$UEOL
Labels are used to mark the beginning of a song segment which is to be 
repeated or called. It assigns a name and a terminal key to the segment.
The name is used by chorus call lines and by repeat lines. The terminal
key is used in the play program to allow random access to your song.

See the sections about the chorus call line and the repeat line for 
examples of the use of the label line.

                        (to exit, type <ret>)
$UEOR
Repeat lines are used to re-play song segments. The repeat line identifies
the label where the repeat is to begin and it also specifies the number
of times the repeat is play.

example:
     <song segment>     this section plays first
     *L AGAIN   A       this marks the beginning of the repeated section
     <song segment>     this is the repeated section
     *R AGAIN   003     this says to repeat the marked section 3 times
     <song segment>     this section plays last

                        (to exit, type <ret>)
$UEOT
Musicraft supports tempos up to 999 quarter notes per minute. The tempo
line is used to specify the tempo of the song segment which follows it.

                        (to exit, type <ret>)
$UEOU
You can transpose any song segment through the use of this option. More-
over, you can transpose any voice independently of any other. The trans-
pose option allows entry in either chromatic or microtonal mode. In either
mode the form of each entry is +nn or -nn where + means higher and - means
lower pitch. The number represents the number of intervals to transpose.
This depends on whether you specified chromatic or microtonal mode. Any
number from 0 to 99 is acceptable in either direction, but watch out. You
can transpose a note out of the Musicraft range. The compiler will give
an error for this.

                        (to exit, type <ret>)
$UEOV
This facility allows you to find any music which has been incompletely
completed. If anything is found, the page containing the error is displayed
with the cursor centered on the screen. Otherwise, the first page of
the song is displayed and the cursor is on the <*da capo> line.

                        (to exit, type <ret>)
$UEOW
The play program contains 14 waveform tables. These tables can be filled
with any waveforms from your collection of waveform files. You can assign
each of the voices of your song to any of the waveform tables as you edit
the song. When you load the waveform tables before you play your song, you
determine the sound which will be associated with the voices.

You can have as many waveform lines in the song as you would like, so you
can change the sound of a voice as often during the playing of the song
as you would like.

                        (to exit, type <ret>)
$UEOX
The exit line marks the end of a song segment which is to be played as a
chorus. It is also used at the end of the main song to keep the chorus
to be played at the end of the song.

See the section about the chorus call for examples of the use of the exit
line.

                        (to exit, type <ret>)
$UEOK
The editor will keep track of both a flat and a sharp signature as you
edit. Using this option will permit you to set the signatures and to 
change them at any time during the editing process. Two methods are
provided for you to set them.

1. You may indicate the number of sharps (or flats) by typing a number.
   This assumes the conventional "circle of fifths" method of relating
   key signatures.
2. You may enter the actual letter names of the sharps (or flats) to be
   in the key signature. No assumptions are made here. You can have any
   signature combination of sharps and flats that you would like.

                        (to exit, type <ret>)
$UC
You compile a song by typing the C command while in the Musicraft menu.
If you have declared a working song, the compiler will automatically
load the source, compile an object and save the object. The Musicraft
menu will again appear.

If there is no working song, the compiler will request that you name
one. After you have done this, the compiler will proceed as above.

If you wish to run the compiler from the CP/M command mode you may
type the following:

A> COMP <song_name><ret>                The song name is optional
                                        but if you don't specify it,
                                        the compiler will be obliged
                                        to ask you for it later.
                                        
                        (to exit, type <ret>)
$UW
You create and change waveforms by first typing the W command while in
the Musicraft menu. This will cause the waveform editor menu to appear.
Included in that menu is a H(elp command so I won't go into any details
here.

If you wish to run the waveform editor from the CP/M command mode, you
may type the following:

A> WAVE<ret>

                        (to exit, type <ret>)
$UP
Type a..
     I to learn how to initialize the play program,
     P to learn how to use its interactive facilities,
     J to learn about the jukebox facility in play.

                        (to exit, type <ret>)
$UPI:UPI1
You play one or more songs by typing the P command. If you have declared
a working song, the object file for that song will be loaded. 

If you wish to play one or more songs from the CP/M command mode, you
may type

A> PLAY <song_name><ret>                The song name is optional and
                                        if you wish to play more than
                                        one song, you must not include
                                        the song name.

In either of the two methods of invoking the play function, if you did
not name a song, you will be asked to identify the song to be played.
You should answer this request with the song name followed by <ret>.
After this song has been loaded, you will again be asked to identify 
another song. As long as you identify songs to be played, you will be 
asked again. You terminate this process with a <ret> without the song name.

                (to continue reading this, type <ret>)
$UPI1
The next step is the waveform load phase. The play program comes equipped
with the waveform tables preset to various common waveforms. You can
overide these for a session by identifying waveform files as you are
requested. You can also overide these defaults permanently with different
versions of the play program by following the instructions given in the
modification frames of this help file. There are several possible responses
to each waveform file identification request from the play program.

. you can type a "0" (zero) to clear the table,
. you can name a waveform,
. you can type an "*" to leave the table unmodified,
. you can type an "=" to leave all the remaining tables unmodified.
. you can type an integer from 1 to 14 to copy the corresponding table,

In any case, follow your response with a <ret>.

After the waveform tables have been loaded, the music begins to play.

                        (to exit, type <ret>)
$UPP
The play facility has two interactive capabilities.

Type a..
     P for the play-along and practice features,
     K for the programmable interactive keyboard,

                        (to exit, type <ret>)
$UPPP
There are two features which help when you wish to practice playing music
with the computer. The first is the ability to silence a voice (the one
you want to play) by clearing the waveform that you have assigned to that
voice. The second is the ability to restart at any measure in the piece
at any time you wish while the music is playing.

To silence a voice, you must do two things:

1. When you edit the song, assign to the voice a waveform table that is
   not used by any other voice.
2. When you play the song, specify 0 (zero) for the waveform table when
   you are asked.

To restart a song at any point, you must do two things:

1. When you edit the song, make sure that you place measure lines in the
   song at the proper places.
2. When you play the song and you wish to restart at some measure, press
   <ret>. Then give the measure number when you are asked. The play 
   program will pause briefly before playing so that you can get your 
   instrument into position.

                        (to exit, type <ret>)
$UPPK
You may use your terminal keyboard to randomly play sections of your song
if you do these two things:

1. When you edit the song, use the label option at each point in your song
   that you wish to play from the keyboard. Assign unique keys to each label
   when you are asked about "label keys". These are the keys on your keyboard
   which will be associated with the labels.
2. When you play the song and you wish to play some song segment, press the
   key you have assigned to that segment. The segment will play without
   pause.

Note that you can use this facility to change waveform assignments on the
fly, so to speak, by placing waveform assignment option lines in labeled
song segments.

One composer friend of mine is working on a large-scale composition which
involves three Musicraft systems, all being played in exactly this manner. 
He will conduct, and we will all play.

                        (to exit, type <ret>)
$UPJ
If you have a set of songs that you would like to play with as little
trouble as possible, you can use the Jukebox function to make song selections.
You can have as many jukebox menus in your system as you would like. Each
menu can describe up to 10 songs and you use this facility by doing two
things:

1. Use the jukebox edit facility in the utility (U commamnd) to create
   and edit each jukebox menu.
2. Specify the jukebox menu instead of a song when you play. 

After the menu is loaded, it is displayed on the screen. You select one
or more songs to be played by typing the keys you have assigned to each
song in the order you wish to play them. Then press <ret>. They will
be automatically loaded and played in order without further attention
on your part.

You must be sure that the songs are on the same disk as is your menu.

                        (to exit, type <ret>)
$M
If you would like to create a new version of the play program which uses
different waveforms, press P. Otherwise, if you want to know more about
the source material for the system, press S.

                        (to exit, type <ret>)
$MP
The 14 waveform tables of the play program have been pre-loaded so that you
do not need to fill them when you play a song. You can override any one or
more of them at any time you wish by specifying other waveform files when
you load a song to play. You can also create other versions of the play
program by loading the tables with your choice of waveforms and then saving
the new version of the play program. I have left a special song file, 
called "WAVES", on the song disk which will aid you in doing this. It is
a very simple song..it has no notes and will make no sounds..but it will
cause the play program to ask you to load all 14 waveform tables. Use the
edit facility to look at it. To build a new play program, here is what you do:
1. create the waveforms that you wish to place in the play program by using
   the waveform editor.
2. type (you cannot do this step using the P_command)..
   A> PLAY B:WAVES<ret>
3. as you are asked, specify each of the waveforms you wish to include.
4. when the exit menu is presented, type 4 to return to CP/M.
5. type..
   A> SAVE 34 XPLAY.COM<ret>
When you use the P_command, MUSIC will always load PLAY, so if you wish to
use XPLAY instead, you should change the name of PLAY and then change the
name of XPLAY to PLAY.

                        (to exit, type <ret>)
$MS:MS1
The system is comprised of seven programs:

1. MUSIC        acts as central control
2. SETUP        builds the configuration record
3. EDIT         permits creation and change of songs
4. COMP         converts songs in symbolic notation to numeric notation
5. WAVE         permits creation and change of waveforms
6. PLAY         provides the sound generating facility
7. UTIL         everything else that the system does.

At the source level, these programs are collections of source modules
which were designed for editing convenience. 

                (to continue reading this, type <ret>)
$MS1:MS2
The following describes the composition of each of the seven programs as
source module sets:

MUSIC = CPM.SRC, MACROS.SRC, MUSIC1.SRC, CUTIL.SRC, CIOS.SRC, MUSIC2.SRC
SETUP = CPM.SRC, MACROS.SRC, SETUP1.SRC, FLOAT.SRC, CUTIL.SRC, CIOS.SRC,
        SETUP2.SRC
EDIT  = CPM.SRC, MACROS.SRC, EDIT1.SRC, EDIT2.SRC, EDIT3.SRC, EDIT4.SRC,
        CUTIL.SRC, CIOS.SRC, EDIT5.SRC
COMP  = CPM.SRC, MACROS.SRC, COMP1.SRC, FLOAT.SRC, CUTIL.SRC, CIOS.SRC,
        COMP2.SRC
WAVE  = CPM.SRC, MACROS.SRC, WAVE1.SRC, FLOAT.SRC, CUTIL.SRC, CIOS.SRC,
        WAVE2.SRC
PLAY  = PLAY1.SRC, CIOSP.SRC, PLAY2.SRC
UTIL  = CPM.SRC, MACROS.SRC, UTIL1.SRC, CUTIL.SRC, CIOS.SRC, UTIL2.SRC

In order to assemble any program, you must use PIP (or similar) to catenate
the modules in the order described above into a single file. 

To assemble, you must use MAC or an equivalent macro assembler.

                (to continue reading this, type <ret>)
$MS2:MS3
The general purpose modules are briefly described below:

CPM.SRC  (TRS80.SRC) sets assembler switches for proper assembly for the
        target machine.
MACROS.SRC defines the macros used in the source.
FLOAT.SRC provides the basic four floating point operations.
CUTIL.SRC (TUTIL.SRC) provides for multiply, divide, and string handling
        facilities. Also includes the configuration loader.
CIOS.SRC (TIOS.SRC) is an i/o interface module which goes between the
        Musicraft i/o conventions and the CP/M (TRSDOS) i/o conventions.
CIOSP.SRC (TIOSP.SRC) is CIOS.SRC modified somewhat for the Play program.

By using the modules in parentheses at the proper places in the catenation
descriptions above, the system will automatically assemble correctly for
the TRS80 model 1. (This with the sole exception of MUSIC which does not
have proper coding to load an overlay for the TRS80.)

                (to continue reading this, type <ret>)
$MS3
A few modifications come to mind:

1. A directory subroutine in UTIL which sees only song names and wave names.
   It would present the songs and then the waveforms. The state of the songs
   (ie., whether they have been compiled or not, etc.) would be reflected as
   well as the number of song lines in each song.
2. Currently, the tempo line is used by COMP in computing the numeric 
   durations for each song line. It would be great if the tempo lines could
   be left in and dealt with by the play program instead. The speed of the
   song could then be controlled interactively. Doing this, as far as I can
   tell, would lose some of the tempo possibilities, however.
3. It would be relatively easy to modify the play program to accept input
   from a synthesizer keyboard. I have done it as a patch. It would be best
   if it were done using the interrupts. I didn't do that.

After you have used the system for awhile, you will probably think of others.

                        (to exit, type <ret>)
$P:P1
The manual is stored on diskette as a set of files, each of which are
small enough to be edited with my UCSD Pascal editor program on a 64k
system. To print the manual, you must present the files to your printer
in the proper order. While I used a Pascal formatted print program that
I wrote to print the files, you can use the print program included on
this diskette to dump the files, or change the format commands in the
text to match whatever print program you have available.

The list of the files in their proper order is:

        name            description
        
        INTRO.DOC       contains table of contents and brief overview.
        CHECK.DOC       describes how to check out system. is fairly
                        out of date.
        PROG1.DOC       describes the song editor in detail.
        PROG2.DOC       describes the compiler and the waveform editor.
        PROG3.DOC       describes the play program.
        OPTNS.DOC       describes the special commands such as repeats,
                        chorus calls and returns, and other options
                        which are provided for in the system.

                (to continue reading this, type <ret>)
$P1
        APND1.DOC       describes the setup parameters and some of the
                        error messages.
        APND2.DOC       finishes the error messages and describes the
                        song file format(not including the percussion
                        field.)

You should be aware that, in some ways (which I hope are more or less
cosmetic) the manual is inaccurate. It does not describe the utility
U_command at all but talks briefly about a PRINT program which no
longer exists but which was incorporated into the utility facility.
Also, the manual was written before the Musicraft Menu program was
written so no mention will be found of that. There are some few add-
itional capabilities in the system which are not documented and there
is one feature which was withdrawn (I just remembered) and that is
that the octave can now be broken into either 12 (chromatic) or 96
(microtonal) intervals.

Other descrepencies must be resolved by examination of the programs
themselves.

                        (to exit, type <ret>)
$$

